package com.huike.clues.service.impl;

import com.huike.clues.domain.TbClue;
import com.huike.clues.domain.vo.ClueTrackRecordVo;
import com.huike.clues.mapper.TbClueMapper;
import com.huike.clues.mapper.TbClueTrackRecordMapper;
import com.huike.clues.service.ITbClueTrackRecordService;
import com.huike.common.core.page.TableDataInfo;
import com.huike.common.utils.DateUtils;
import com.huike.common.utils.SecurityUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 线索跟进记录Service业务层处理
 *
 * @date 2022-04-22
 */
@Service
public class TbClueTrackRecordServiceImpl implements ITbClueTrackRecordService {
    @Autowired
    private TbClueMapper tbClueMapper;
    @Autowired
    private TbClueTrackRecordMapper tbClueTrackRecordMapper;

    @Override
    @Transactional
    public Boolean add(ClueTrackRecordVo clueTrackRecordVo) {
        try {
            //更新线索表客户基本信息
            TbClue tbClue = new TbClue();
            BeanUtils.copyProperties(clueTrackRecordVo, tbClue);
            tbClue.setId(clueTrackRecordVo.getClueId());
            tbClue.setStatus("2");
            tbClueMapper.updateTbClue(tbClue);

            //新增线索跟进表
            clueTrackRecordVo.setCreateTime(DateUtils.getNowDate());
            clueTrackRecordVo.setCreateBy(SecurityUtils.getUsername());
            return tbClueTrackRecordMapper.add(clueTrackRecordVo);
        } catch (BeansException e) {
            throw new RuntimeException(e);
        }
    }

    @Override
    public TableDataInfo list(Long clueId) {
        Long count = tbClueTrackRecordMapper.countClueTrackRecord(clueId);
        List<ClueTrackRecordVo> list = tbClueTrackRecordMapper.list(clueId);
        TableDataInfo tableDataInfo = new TableDataInfo();
        tableDataInfo.setTotal(count);
        tableDataInfo.setRows(list);
        tableDataInfo.setCode(200);
        tableDataInfo.setMsg("查询成功");
        return tableDataInfo;
    }
}
